 import Vue from 'vue';
 import iView from 'iview';
import {router} from './router/index';
import {appRouter} from './router/router';
import store from './store';
import App from './app.vue';
import '@/locale';
import 'iview/dist/styles/iview.css';
import VueI18n from 'vue-i18n';
import util from './libs/util';

Vue.use(VueI18n);
Vue.use(iView);

/**按钮权限指令**/
Vue.directive('has', {
    bind: function (el, binding, vnode) {
        if (!Vue.prototype.$_has(binding.value, vnode)) {
            el.parentNode.removeChild(el);
        }
    }
});
//权限检查方法
Vue.prototype.$_has = function (value, vnode) {
    let isExist = false;
    let btnPermissions = vnode.context.$route.meta.actions
    if (btnPermissions == undefined || btnPermissions == null || btnPermissions == []) {
        return false;
    }
    for (let i = 0; i < btnPermissions.length; i++) {
        if (btnPermissions[i]==value) {
            isExist = true;
            break;
        }
    }
    return isExist;
};


 new Vue({
    el: '#app',
    router: router,
    store: store,
    render: h => h(App),
    data: {
        currentPageName: ''
    },
    mounted () {
        this.currentPageName = this.$route.name;
        // 显示打开的页面的列表
        this.$store.commit('setOpenedList');
        this.$store.commit('initCachepage');
        // 权限菜单过滤相关
        this.$store.commit('updateMenulist');
        // iview-admin检查更新
       // util.checkUpdate(this);
    },
    created () {
        let tagsList = [];
        appRouter.map((item) => {
            if (item.children.length <= 1) {
                tagsList.push(item.children[0]);
            } else {
                tagsList.push(...item.children);
            }
        });
        this.$store.commit('setTagsList', tagsList);
        this.$store.commit('refresh');
    }
});
